// SwitchWidget.h
#ifndef SWITCHWIDGET_H
#define SWITCHWIDGET_H

#include <QWidget>
#include <QDrag>
#include <QMimeData>
#include <QPainter>
#include <QLabel>
class SwitchWidget : public QWidget {
   // Q_OBJECT

public:
    explicit SwitchWidget(QWidget *parent = nullptr)
        : QWidget(parent) {
        setFixedSize(40, 40);  // 设置控件大小
        //setAutoFillBackground(true);  // 设置背景填充
    }
    QRectF boundingRect(){
        return QRectF(0, 0, 40, 40);  // 开关的大小
    }
    void paintEvent(QPaintEvent *event) override {
        QPainter painter(this);
        painter.setRenderHint(QPainter::Antialiasing);

        // 设置画笔颜色
        painter.setPen(Qt::black);

        QPoint start_1(0,40);
        QPoint end_1(10,40);
        painter.drawLine(start_1, end_1);  // 绘制一条线表示开关的线

        QPoint start_2(10,40);
        QPoint end_2(20,10);
        painter.drawLine(start_2, end_2);  // 绘制一条线表示开关的线

        QPoint start_3(20,40);
        QPoint end_3(40,40);
        painter.drawLine(start_3, end_3);  // 绘制一条线表示开关的线
        // 绘制文字
        painter.setPen(Qt::black);  // 设置文本颜色
        painter.drawText(boundingRect(), Qt::AlignCenter, "Switch");
    }

protected:
    void mousePressEvent(QMouseEvent *event) override {

        // 确保不拦截父类的事件
        QWidget::mousePressEvent(event);
    }
    // 鼠标松开事件：在 QGraphicsView 放置元件
    void mouseMoveEvent(QMouseEvent *event) override {

        // 确保不拦截父类的事件
        QWidget::mouseMoveEvent(event);
    }
    // 鼠标松开事件：在 QGraphicsView 放置元件
    void mouseReleaseEvent(QMouseEvent *event) override {

        // 确保不拦截父类的事件
        QWidget::mouseReleaseEvent(event);
    }
};

#endif // SWITCHWIDGET_H
